
#ifndef ILIST_H_
#define ILIST_H_


struct node {
	struct node* next;
	int value;
	int mark;
};
typedef struct node NODE;

struct plist_struct {
	NODE head;
	NODE* head_p;
	NODE* tail;
	NODE* first;
};
typedef struct plist_struct LIST;

void init_list(LIST* q);
void ps_insert(LIST* q, const int v);
int ps_remove(LIST* q, const int v);
int ps_is_empty(LIST* q);
int count(LIST* q);
void clear(LIST* q);

#endif /* ILIST_H_ */
